package org.demo.mapper.plus.extend;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;

/**
 * @author yexi
 */
public interface BaseClickHouseMapper<T> extends BaseMapper<T> {

    /**
     * 根据 ID 修改 ClickHouse 库中的数据
     *
     * @param entity 实体对象
     */
    int updateByIdClickHouse(@Param(Constants.ENTITY) T entity);

    /**
     * 根据 ID 删除 ClickHouse 库中的数据
     *
     * @param id 主键id
     */
    int deleteByIdClickHouse(Serializable id);

    /**
     * 根据 whereEntity 条件，更新 ClickHouse 库中的记录
     *
     * @param entity        实体对象 (set 条件值,可以为 null)
     * @param updateWrapper 实体对象封装操作类（可以为 null,里面的 entity 用于生成 where 语句）
     */
    int updateClickHouse(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);

}
